File encryption technology, such as, for example, ecryptfs, typically provide a file system level encryption scheme by creating a stacked file system on top of an underlying file system. While such stacking isolates such file encryption technology from details of the underlying file system such as, for example, block assignments and directory structures, the stacking also creates performance overheads. In addition, some file encryption technology does not provide integrity protection for file data of file names, and the file name encoding that is used often violates file name length rules which results in userspace application failures.